// Replace this section below with the button you want to simulate.
// ===============================================================================
// ============ THIS IS CHERRY MX BROWN =========
// ============ Set the travel range according to your simulation target =========
int travel_range = 4000;

// ============= Button Data ==============
float button_v0_Down[] = {10.000,29.730,32.670,32.340,32.330,32.760,32.910,33.560,34.270,34.680,35.070,35.290,36.280,36.340,36.540,37.050,37.290,37.860,38.320,38.120,39.240,40.020,43.200,44.360,47.770,49.020,47.580,47.760,47.160,46.590,45.630,44.710,43.680,42.800,41.960,40.210,39.940,39.370,39.430,39.390,38.090,38.260,39.650,39.770,40.450,42.830,44.780,43.400,45.430,49.060,50.340,50.550,50.710,51.090,51.380,51.490,51.960,52.200,52.460,52.860,53.480,53.800,54.050,54.460,54.930,55.360,55.960,56.300,56.980,57.570,58.230,57.870,58.550,59.030,59.090,59.810,60.020,60.240,61.180,61.640,62.540};
float button_v0_Up[] =   {10.000,10.000,14.440,21.670,22.440,22.480,23.320,22.740,23.270,23.190,23.520,24.480,24.400,24.790,25.240,25.520,26.520,27.290,28.120,28.660,29.310,30.890,33.770,35.540,38.000,38.920,38.200,37.510,36.660,35.380,33.920,33.140,32.290,31.360,29.950,28.540,27.790,27.190,27.850,27.640,27.020,27.490,28.580,30.440,28.220,28.980,30.230,34.000,37.720,43.760,44.410,44.890,45.170,45.360,45.250,45.380,45.780,46.320,46.650,46.920,47.170,47.690,47.870,48.520,48.530,49.260,49.600,49.790,49.950,50.320,50.060,50.870,50.520,51.090,51.470,52.370,52.410,52.970,53.060,53.750,53.750};
float button_v1_Down[] = {10.000,21.550,24.498,25.902,27.474,29.267,30.915,32.765,34.425,35.547,36.345,36.858,37.678,38.061,38.532,39.161,39.647,40.410,41.320,42.146,43.834,45.328,47.340,47.325,48.007,47.694,46.231,45.784,45.136,44.666,44.183,43.778,43.308,42.978,42.809,42.213,42.285,42.177,42.427,42.707,42.276,42.487,43.279,43.475,44.020,45.397,46.535,46.270,48.031,50.490,51.573,51.956,52.279,52.736,53.228,53.599,54.124,54.587,55.080,55.686,56.379,56.840,57.236,57.721,58.177,58.561,59.052,59.442,60.022,60.633,61.431,61.754,62.427,62.841,63.048,63.648,64.159,64.769,65.515,65.805,66.260};
float button_v1_Up[] =   {10.000,10.000,15.750,21.118,23.264,25.044,27.221,28.624,30.282,31.038,31.502,32.145,32.293,32.681,33.127,33.660,34.652,35.412,36.164,36.730,37.204,38.064,39.629,40.704,42.065,42.511,42.041,41.531,40.949,40.217,39.323,38.672,37.975,37.114,35.818,34.556,33.924,33.578,33.936,33.954,33.825,34.245,35.184,36.841,36.703,38.193,39.800,42.266,44.413,47.579,47.981,48.352,48.816,49.197,49.291,49.533,49.943,50.422,50.796,51.094,51.325,51.745,52.056,52.615,52.882,53.499,53.881,54.130,54.270,54.513,54.504,55.080,55.105,55.573,55.915,56.391,56.235,56.406,56.591,57.221,57.392};
float button_v2_Down[] = {11.347,13.369,16.325,19.464,22.619,25.773,28.920,31.970,34.580,36.415,37.620,38.426,39.076,39.781,40.523,41.272,42.003,42.960,44.319,46.172,48.427,50.636,51.479,50.290,48.243,46.368,44.883,43.807,43.113,42.742,42.736,42.846,42.936,43.157,43.659,44.217,44.631,44.985,45.423,46.024,46.461,46.714,46.909,47.179,47.590,47.963,48.289,49.141,50.632,51.921,52.805,53.361,53.847,54.382,55.077,55.707,56.288,56.974,57.700,58.511,59.278,59.881,60.421,60.981,61.424,61.761,62.144,62.585,63.065,63.696,64.633,65.639,66.304,66.652,67.006,67.487,68.297,69.297,69.850,69.970,69.980};
float button_v2_Up[] =   {11.504,13.761,17.061,20.566,24.088,27.609,31.121,34.509,37.295,38.887,39.485,39.810,40.186,40.572,41.015,41.799,42.785,43.534,44.208,44.801,45.099,45.239,45.488,45.868,46.130,46.101,45.881,45.552,45.238,45.054,44.725,44.205,43.661,42.869,41.685,40.573,40.058,39.965,40.022,40.269,40.631,41.000,41.789,43.242,45.186,47.406,49.370,50.532,51.106,51.398,51.552,51.814,52.461,53.035,53.331,53.686,54.106,54.523,54.941,55.267,55.479,55.801,56.243,56.709,57.234,57.739,58.162,58.470,58.591,58.705,58.947,59.290,59.689,60.055,60.361,60.412,60.060,59.842,60.122,60.692,61.034};
float button_v3_Down[] = {10.991,12.478,14.652,16.962,19.282,21.602,23.933,26.359,29.085,31.761,33.743,35.377,36.785,38.010,39.271,40.502,41.465,42.525,44.239,46.791,50.221,53.838,55.683,54.728,52.547,50.401,48.669,47.488,46.567,45.409,43.904,42.265,41.252,40.876,40.499,40.090,39.778,39.581,39.624,40.203,40.947,41.358,41.522,42.265,43.695,45.233,46.962,49.045,50.787,51.905,52.962,54.468,55.911,56.539,57.044,57.759,58.859,59.531,60.014,60.552,60.432,60.248,60.540,60.975,61.270,61.578,62.040,62.605,63.088,63.489,63.867,64.314,64.751,65.192,66.100,67.389,68.635,69.356,69.746,70.134,70.355};
float button_v3_Up[] =   {11.558,13.898,17.317,20.950,24.599,28.248,31.885,35.358,38.047,39.248,39.407,39.578,40.237,41.418,42.883,44.569,46.160,47.479,48.762,49.779,50.139,50.011,49.635,49.183,48.751,48.227,47.408,46.415,45.700,45.150,44.438,43.850,43.355,42.474,41.587,41.032,40.744,40.525,40.243,39.924,39.681,39.629,40.521,42.730,45.668,48.412,50.181,51.111,51.667,51.934,52.169,52.528,53.106,53.553,53.782,54.079,54.460,54.977,55.754,56.508,56.868,57.130,57.666,58.388,59.209,59.873,60.198,60.296,60.218,60.057,60.005,60.182,60.316,60.236,60.641,62.037,64.311,66.691,68.059,68.598,68.789};
float button_v4_Down[]=  {10.635,11.587,12.980,14.459,15.945,17.432,18.945,20.748,23.590,27.106,29.867,32.329,34.495,36.238,38.019,39.732,40.926,42.089,44.158,47.410,52.014,57.040,59.888,59.167,56.851,54.433,52.455,51.169,50.020,48.076,45.073,41.684,39.567,38.594,37.339,35.962,34.925,34.178,33.825,34.381,35.434,36.002,36.134,37.351,39.799,42.503,45.634,48.949,50.942,51.889,53.119,55.575,57.975,58.696,59.011,59.811,61.431,62.088,62.327,62.593,61.586,60.616,60.659,60.969,61.117,61.394,61.936,62.624,63.112,63.282,63.101,62.988,63.198,63.731,65.194,67.291,68.973,69.414,69.642,70.298,70.730};
float button_v4_Up[]=    {11.613,14.034,17.573,21.333,25.110,28.887,32.648,36.206,38.800,39.609,39.328,39.346,40.288,42.264,44.752,47.338,49.535,51.424,53.316,54.757,55.179,54.784,53.781,52.497,51.372,50.352,48.935,47.277,46.161,45.245,44.150,43.496,43.049,42.078,41.489,41.492,41.430,41.084,40.464,39.579,38.731,38.257,39.253,42.218,46.149,49.417,50.993,51.691,52.228,52.469,52.787,53.241,53.751,54.071,54.232,54.473,54.814,55.430,56.567,57.749,58.257,58.460,59.088,60.067,61.183,62.006,62.234,62.122,61.846,61.410,61.063,61.074,60.943,60.417,60.920,63.661,68.561,73.540,75.997,76.504,76.544};
float button_v5_Down[] = {10.520,11.300,12.441,13.652,14.870,16.088,17.328,18.810,21.223,24.526,27.575,30.148,31.959,33.415,35.297,37.091,38.466,39.936,42.016,44.959,49.115,54.123,58.194,59.815,59.604,58.549,57.169,55.570,53.567,51.096,48.228,45.116,42.622,40.881,39.094,37.146,35.451,34.045,32.979,32.636,32.922,33.133,33.022,33.492,34.887,36.772,39.114,41.710,43.882,45.866,48.520,52.325,56.101,58.451,59.725,60.492,61.026,61.134,61.620,62.284,62.093,61.573,61.356,61.434,61.620,61.811,62.127,62.248,62.094,62.134,62.270,62.572,63.365,64.661,67.123,70.380,72.285,72.495,72.680,73.368,73.821};
float button_v5_Up[] =   {11.860,14.650,18.729,23.063,27.416,31.770,36.101,40.154,42.962,43.798,43.852,44.227,45.412,47.981,50.477,52.099,53.056,54.102,55.612,56.243,55.669,55.106,54.469,53.066,51.263,49.528,48.159,47.193,45.981,44.602,43.169,42.074,41.318,40.419,39.744,39.669,39.831,40.044,40.974,42.751,44.180,45.139,47.005,50.400,54.148,56.532,57.492,57.897,58.052,58.216,58.469,58.564,58.793,59.227,59.809,60.510,61.124,61.758,62.741,63.744,64.156,64.359,64.907,65.636,66.284,66.801,67.161,67.359,67.286,66.941,66.541,66.427,66.522,67.026,68.848,72.410,77.618,82.771,85.332,85.863,85.904};
float button_v6_Down[] = {10.405,11.013,11.902,12.846,13.795,14.744,15.710,16.872,18.856,21.946,25.283,27.967,29.422,30.591,32.576,34.451,36.007,37.784,39.874,42.509,46.216,51.206,56.499,60.463,62.357,62.665,61.883,59.971,57.113,54.116,51.383,48.548,45.677,43.168,40.849,38.330,35.977,33.912,32.133,30.890,30.410,30.265,29.910,29.633,29.975,31.040,32.593,34.472,36.822,39.843,43.922,49.075,54.227,58.207,60.438,61.172,60.622,60.180,60.912,61.975,62.599,62.530,62.054,61.900,62.122,62.229,62.317,61.872,61.075,60.986,61.438,62.156,63.532,65.591,69.052,73.469,75.597,75.575,75.719,76.439,76.911};
float button_v6_Up[] =   {12.106,15.266,19.885,24.793,29.723,34.653,39.554,44.101,47.124,47.987,48.376,49.107,50.536,53.699,56.202,56.860,56.578,56.779,57.908,57.730,56.160,55.428,55.158,53.635,51.153,48.705,47.383,47.109,45.802,43.960,42.188,40.652,39.587,38.759,37.999,37.847,38.232,39.003,41.483,45.922,49.628,52.020,54.757,58.582,62.146,63.648,63.990,64.103,63.875,63.963,64.150,63.886,63.836,64.384,65.387,66.546,67.434,68.086,68.915,69.739,70.056,70.257,70.727,71.205,71.386,71.596,72.088,72.596,72.726,72.471,72.019,71.779,72.101,73.635,76.776,81.159,86.674,92.002,94.666,95.221,95.265};
float button_v7_Down[] = {10.207,10.518,10.973,11.456,11.941,12.426,12.922,13.546,14.732,16.824,19.573,22.457,24.599,26.258,28.543,31.120,33.921,37.029,39.946,43.138,47.805,54.429,61.323,66.073,68.314,68.742,67.620,64.918,61.856,58.882,55.686,52.573,49.054,45.055,41.760,39.433,37.614,36.102,34.330,32.073,30.781,31.081,31.227,31.008,31.313,31.794,32.993,35.139,37.894,40.998,45.084,50.689,56.289,60.212,62.581,64.096,64.730,65.068,65.545,65.476,64.954,64.454,63.898,63.344,63.610,64.840,66.800,68.103,67.409,65.959,65.995,67.684,70.335,72.978,75.767,79.013,81.090,81.196,81.498,82.770,83.611};
float button_v7_Up[] =   {12.024,15.062,19.503,24.221,28.960,33.700,38.465,43.472,49.176,54.297,56.439,56.860,58.504,61.864,64.398,66.108,67.845,69.244,70.203,72.078,72.524,69.865,66.478,62.129,56.418,51.998,49.097,47.836,45.648,41.606,38.556,35.758,31.843,29.346,29.191,30.108,31.386,33.224,37.019,42.597,46.525,49.480,53.974,59.948,64.864,65.234,65.275,66.888,67.132,67.755,69.097,68.630,67.689,67.718,68.078,68.637,69.355,70.194,72.441,74.868,75.941,77.112,78.920,80.489,81.521,82.221,83.297,84.989,86.677,87.591,87.281,85.841,84.279,84.250,87.492,94.043,102.994,110.000,110.000,110.000,110.000};
float button_v8_Down[] = {10.009,10.023,10.043,10.065,10.086,10.108,10.134,10.221,10.607,11.701,13.863,16.948,19.777,21.924,24.509,27.790,31.835,36.275,40.017,43.766,49.393,57.652,66.146,71.683,74.271,74.819,73.356,69.866,66.600,63.648,59.989,56.599,52.431,46.941,42.670,40.537,39.250,38.293,36.527,33.256,31.152,31.896,32.545,32.382,32.651,32.549,33.394,35.807,38.966,42.152,46.246,52.303,58.351,62.217,64.725,67.021,68.838,69.956,70.178,68.977,67.309,66.379,65.742,64.788,65.098,67.451,71.283,74.335,73.743,70.931,70.552,73.212,77.138,80.366,82.482,84.558,86.583,86.817,87.277,89.102,90.311};
float button_v8_Up[] =   {11.943,14.858,19.120,23.648,28.197,32.748,37.375,42.843,51.228,60.607,64.503,64.613,66.472,70.029,72.595,75.355,79.111,81.709,82.499,86.426,88.888,84.303,77.799,70.624,61.684,55.292,50.812,48.563,45.493,39.252,34.925,30.865,24.098,19.934,20.382,22.368,24.540,27.445,32.554,39.273,43.422,46.940,53.190,61.314,67.582,66.819,66.560,69.674,70.388,71.546,74.045,73.374,71.541,71.052,70.769,70.727,71.275,72.301,75.966,79.997,81.826,83.967,87.113,89.774,91.656,92.847,94.506,97.382,100.627,102.711,102.542,99.904,96.456,94.865,98.207,106.928,110.000,110.000,110.000,110.000,110.000};
float button_v9_Down[] = {10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,11.439,14.955,17.590,20.476,24.459,29.749,35.520,40.089,44.394,50.981,60.875,70.969,77.293,80.228,80.896,79.092,74.814,71.343,68.414,64.292,60.624,55.808,48.828,43.581,41.641,40.886,40.483,38.724,34.439,31.523,32.712,33.863,33.756,33.989,33.303,33.794,36.475,40.038,43.306,47.408,53.917,60.413,64.222,66.868,69.946,72.946,74.844,74.811,72.478,69.664,68.304,67.586,66.232,66.586,70.062,75.766,80.566,80.077,75.903,75.109,78.740,83.941,87.754,89.197,90.103,92.076,92.438,93.056,95.434,97.011};
float button_v9_Up[] =   {11.861,14.654,18.738,23.075,27.434,31.795,36.285,42.214,53.280,66.917,72.567,72.366,74.440,78.194,80.791,84.603,90.377,94.174,94.794,100.774,105.252,98.740,89.120,79.118,66.950,58.586,52.526,49.290,45.339,36.898,31.293,25.971,16.353,10.522,11.574,14.628,17.694,21.666,28.090,35.949,40.319,44.400,52.406,62.680,70.300,68.404,67.845,72.460,73.645,75.338,78.993,78.118,75.393,74.386,73.460,72.817,73.196,74.409,79.491,85.126,87.711,90.822,95.306,99.059,101.791,103.472,105.715,109.775,110.000,110.000,110.000,110.000,108.633,105.480,108.922,110.000,110.000,110.000,110.000,110.000,110.000};

// ============ Vibration settings ============
bool if_vib = true;
int vib_point_1 = 1600;
int vib_point_2 = 1900;

int vib_file0 = 20;
int vib_file1 = 20;
int vib_file2 = 18;
int vib_file3 = 18;
int vib_file4 = 4;
int vib_file5 = 4;
int vib_file6 = 5;
int vib_file7 = 5;
int vib_file8 = 4;
int vib_file9 = 4;

// ===============================================================================
// Replace the section above